Skip to content

高性能推理框架对比:vLLM、LMDeploy与TensorRT-LLM

学习目标

  • 理解高性能推理框架的核心技术原理
  • 掌握主流推理框架的特点与优缺点
  • 学会根据应用场景选择合适的推理框架
  • 了解推理优化的关键技术和方法

高性能推理的核心挑战

大语言模型推理面临几个核心挑战,这些挑战驱动了专业推理框架的发展:

  1. 内存墙问题:模型参数和注意力计算需要大量显存
  2. 计算资源效率:如何最大化利用GPU/CPU计算能力
  3. 请求调度:如何高效处理多个并发请求
  4. 延迟与吞吐量平衡:如何在保持低延迟的同时提高系统吞吐量
  5. 灵活性与适配性:支持不同模型架构和硬件平台

vLLM框架

vLLM是Stanford大学开发的高性能LLM推理引擎,以其PagedAttention技术和高效的并发处理能力著称。

核心技术特点

  1. PagedAttention

    • 将KV缓存按页管理,类似操作系统的虚拟内存管理
    • 显著减少内存碎片,提高显存利用率达30-40%
    • 支持更长的上下文长度和更多并发请求
  2. 连续批处理(Continuous Batching)

    • 动态添加新请求到正在处理的批次
    • 避免传统批处理中因等待最长序列而造成的GPU资源浪费
    • 显著提高并发处理能力
  3. 迭代式解码引擎

    • 优化推理过程中的计算流程
    • 减少GPU内核启动开销
    • 提高生成阶段的吞吐量

主要优势

  • 高显存效率:支持在有限显存下处理更多请求
  • 优秀的并发性能:在多请求场景下表现突出
  • 广泛的模型支持:兼容大多数主流LLM模型
  • 易于集成:提供OpenAI兼容API接口
  • 活跃的社区支持:更新迭代快,问题解决及时

局限性

  • 较高的启动开销:首次加载模型时间较长
  • 资源调度灵活性有限:自定义调度策略支持不足
  • 分布式功能相对初级:跨节点扩展功能仍在发展中

LMDeploy框架

LMDeploy是由上海人工智能实验室(上海AI Lab)开发的端到端LLM部署工具,专注于亚洲市场的模型优化。

核心技术特点

  1. 量化技术

    • AWQ(Activation-aware Weight Quantization)算法
    • 支持W4A16(4位权重,16位激活)等多种精度
    • 几乎无精度损失的模型量化
  2. Blocked KV Cache

    • 类似PagedAttention的内存管理机制
    • 为中文等亚洲语言模型特别优化
    • 减少内存碎片,提高内存利用率
  3. 高效计算核心

    • 针对不同计算阶段的定制CUDA核心
    • 优化前缀(Prefill)和解码(Decode)阶段计算
    • 针对特定硬件平台的性能调优

主要优势

  • 亚洲语言模型优化:对中文等亚洲语言模型有特殊优化
  • 全流程部署工具:从模型转换、量化到部署的完整工具链
  • 低精度推理:提供高质量量化实现
  • 多平台支持:从服务器到移动端的部署方案
  • Turbomind推理引擎:高性能C++/CUDA实现

局限性

  • 支持模型相对较少:与vLLM相比支持的模型架构较少
  • 文档与社区:英文文档和社区支持相对有限
  • 工具集成度:与主流MLOps工具的集成度不如vLLM

TensorRT-LLM框架

TensorRT-LLM是NVIDIA推出的基于TensorRT的LLM推理优化框架,专为NVIDIA GPU平台设计。

核心技术特点

  1. 深度NVIDIA硬件优化

    • 针对不同代NVIDIA GPU架构优化
    • 利用Tensor Core等专用硬件单元
    • 支持多种精度(FP16, INT8, INT4等)
  2. 高级图优化

    • 计算图融合优化
    • 内核自动调优(Kernel Auto-Tuning)
    • 运算符合并与内存访问优化
  3. 分布式推理

    • 张量并行(Tensor Parallelism)
    • 流水线并行(Pipeline Parallelism)
    • 多GPU/多节点协同推理

主要优势

  • 极致性能:在NVIDIA硬件上提供最佳性能
  • 企业级支持:NVIDIA官方支持和优化
  • 完整工具生态:与NVIDIA AI生态系统无缝集成
  • 高级分布式能力:成熟的多GPU/多节点并行推理
  • 量化精度:高质量的量化实现与工具

局限性

  • 硬件限制:仅适用于NVIDIA GPU
  • 复杂度较高:配置和使用难度较大
  • 灵活性:针对非标准模型架构的适配较复杂
  • 学习曲线:相比其他框架学习成本较高

支持的硬件

vLLM

  • GPU
    • NVIDIA CUDA(Volta、Turing、Ampere、Ada、Hopper 架构)
    • AMD ROCm
    • Intel XPU
  • CPU
    • Intel/AMD x86
    • ARM AArch64
    • Apple Silicon
    • IBM Z(S390X)
  • 其他 AI 加速器
    • Google TPU
    • Intel Gaudi
    • AWS Neuron(包括 Trainium 和 Inferentia)

LMDeploy

LMDeploy 是由 InternLM 团队开发的用于大语言模型压缩、部署和服务的工具包,主要支持以下硬件平台:

  • GPU

    • NVIDIA CUDA(20 系列及以上,推荐单卡 24GB 显存或多卡组合)

    • 支持的 NVIDIA 显卡型号包括:

      CUDA Compute Capability: sm75, sm80, sm86, sm89, sm90

      • Volta(sm70): V100
      • Turing(sm75): 20 系列,T4
      • Ampere(sm80,sm86): 30 系列,A10, A16, A30, A100 等
      • Ada Lovelace(sm89): 40 系列
      • Hopper(sm90):H100(尚未深度优化)
  • NPU

    • 华为 Ascend(昇腾)平台,支持 BF16 推理,需使用 MindIE 框架进行适配
    • Huawei 910b
架构/芯片名称制造商代表产品主要用途
Volta(SM70)NVIDIATesla V100AI 训练、HPC
Turing(SM75)NVIDIARTX 20 系列、T4图形渲染、AI 推理
Ampere(SM80/SM86)NVIDIARTX 30 系列、A100 等AI 训练与推理
Ada Lovelace(SM89)NVIDIARTX 40 系列高端图形、AI 应用
Hopper(SM90)NVIDIAH100、H200大规模 AI 模型训练
Ascend 910B华为Ascend 910BAI 训练与推理

此外,vLLM 支持多种量化方法(如 GPTQ、AWQ、INT4、INT8、FP8 等),其在不同硬件平台上的兼容性详见官方文档。

支持的模型对比

LLMsVLMs
  • Llama (7B - 65B)
  • Llama2 (7B - 70B)
  • Llama3 (8B, 70B)
  • Llama3.1 (8B, 70B)
  • Llama3.2 (1B, 3B)
  • InternLM (7B - 20B)
  • InternLM2 (7B - 20B)
  • InternLM3 (8B)
  • InternLM2.5 (7B)
  • Qwen (1.8B - 72B)
  • Qwen1.5 (0.5B - 110B)
  • Qwen1.5 - MoE (0.5B - 72B)
  • Qwen2 (0.5B - 72B)
  • Qwen2-MoE (57BA14B)
  • Qwen2.5 (0.5B - 32B)
  • Qwen3, Qwen3-MoE
  • Baichuan (7B)
  • Baichuan2 (7B-13B)
  • Code Llama (7B - 34B)
  • ChatGLM2 (6B)
  • GLM4 (9B)
  • CodeGeeX4 (9B)
  • YI (6B-34B)
  • Mistral (7B)
  • DeepSeek-MoE (16B)
  • DeepSeek-V2 (16B, 236B)
  • DeepSeek-V2.5 (236B)
  • Mixtral (8x7B, 8x22B)
  • Gemma (2B - 7B)
  • StarCoder2 (3B - 15B)
  • Phi-3-mini (3.8B)
  • Phi-3.5-mini (3.8B)
  • Phi-3.5-MoE (16x3.8B)
  • Phi-4-mini (3.8B)
  • MiniCPM3 (4B)
  • LLaVA(1.5,1.6) (7B-34B)
  • InternLM-XComposer2 (7B, 4khd-7B)
  • InternLM-XComposer2.5 (7B)
  • Qwen-VL (7B)
  • Qwen2-VL (2B, 7B, 72B)
  • Qwen2.5-VL (3B, 7B, 72B)
  • DeepSeek-VL (7B)
  • DeepSeek-VL2 (3B, 16B, 27B)
  • InternVL-Chat (v1.1-v1.5)
  • InternVL2 (1B-76B)
  • InternVL2.5(MPO) (1B-78B)
  • InternVL3 (1B-78B)
  • Mono-InternVL (2B)
  • ChemVLM (8B-26B)
  • CogVLM-Chat (17B)
  • CogVLM2-Chat (19B)
  • MiniCPM-Llama3-V-2_5
  • MiniCPM-V-2_6
  • Phi-3-vision (4.2B)
  • Phi-3.5-vision (4.2B)
  • GLM-4V (9B)
  • Llama3.2-vision (11B, 90B)
  • Molmo (7B-D,72B)
  • Gemma3 (1B - 27B)
  • Llama4 (Scout, Maverick)

三大框架的性能对比

image-20250509213058457

图编号模型规模 & 卡数任务类型vLLM 优势明显度类型解释
图1LLaMA 8B, 1xH100ShareGPT明显普通问答、多轮对话
图2LLaMA 8B, 1xH100Decode-heavy非常明显长生成、解码占比高
图3LLaMA 8B, 1xH100Prefill-heavy小幅领先长 prompt 输入任务
图4LLaMA 70B, 4xH100ShareGPT明显大模型 + 对话场景
图5LLaMA 70B, 4xH100Decode-heavy极其明显大模型 + 长文本生成
图6LLaMA 70B, 4xH100Prefill-heavy小幅领先大模型 + 超长输入

另外一个测试数据:

![Screenshot 2025-01-29 at 11.39.18 AM](https://static.www.toimc.com/blog/picgo/2025/05/09/Screenshot 2025-01-29 at 11.39.18 AM.webp-width=2559-height=1031-name=Screenshot 2025-01-29 at 11.39.18 AM-fc8f57-509642.webp)

在单次请求处理时,SGLang 在首字延迟(ttfs)方面表现最佳,比最慢的(lmdeploy-pytorch)快 22.3%。

另一方面,lmdeploy-turbomind 以平均 88.6 tok/s 的速度领先其他方案,比最慢的(vllm)快 8.12%。

![Screenshot 2025-01-29 at 11.40.14 AM](https://static.www.toimc.com/blog/picgo/2025/05/09/Screenshot 2025-01-29 at 11.40.14 AM.webp-width=2949-height=1201-name=Screenshot 2025-01-29 at 11.40.14 AM-1be3e0.webp)

  • 在 TTFS 方面,SGLang 在 3 个模型中有 2 个表现非常出色,但对 Mistralv0.3 的表现明显不足,即使经过多次重复测试结果依然一致。这表明该框架对 Mistral 架构的优化不足。
  • 每秒吞吐量由 lmdeploy-turbomind 领先,比表现最差的框架高出 20%以上。
  • TGI 在处理 Llama 和 Mistral 时均遇到内存不足(OOM)错误。

另外一个测试数据:

llama3-8b-ttft.png

Llama 3 8B 模型:不同后端系统的首令牌响应时间(TTFT)对比

llama3-8b-tput.png

Llama 3 8B 模型:不同后端系统的令牌生成速率对比

  • LMDeploy: 在令牌生成速率方面提供了最佳解码性能,100 用户并发时最高可达每秒 4000 个令牌。在 10 用户并发时实现了业界顶尖的首令牌响应时间。虽然随着用户数增加 TTFT 会逐步上升,但仍保持较低水平并始终位列最优表现。
  • MLC-LLM: 在 10 用户并发时解码性能与 LMDeploy 相当,且在 10 和 50 用户时实现了业界领先的首字延迟(TTFT)。但在极高负载下难以维持该效率,当并发用户增至 100 时,其解码速度和 TTFT 表现均落后于 LMDeploy。
  • vLLM: 在所有并发用户级别中均实现了最佳的首字延迟(TTFT),但解码性能较 LMDeploy 和 MLC-LLM 稍逊,每秒 2300-2500 个令牌的处理速度与 TGI 和 TRT-LLM 相近。

参考资源:

https://www.clarifai.com/blog/comparing-vllm-lmdeploy-and-sglang

https://medium.com/@zaiinn440/best-llm-inference-engine-tensorrt-vs-vllm-vs-lmdeploy-vs-mlc-llm-e8ff033d7615

https://www.bentoml.com/blog/benchmarking-llm-inference-backends

https://opencompass.readthedocs.io/en/latest/advanced_guides/accelerator_intro.html

https://www.clarifai.com/blog/comparing-vllm-lmdeploy-and-sglang

https://blog.vllm.ai/2024/09/05/perf-update.html

部署场景选择指南

根据应用场景选择

  1. 标准云服务部署

    • 首选: vLLM
    • 理由: 易于部署、广泛模型支持、活跃社区
  2. 中文/亚洲语言为主的应用

    • 首选: LMDeploy
    • 理由: 针对亚洲语言模型优化、良好的量化支持
  3. 需要极致性能的企业级部署

    • 首选: TensorRT-LLM
    • 理由: 最高性能、企业级支持、成熟的分布式能力
  4. 资源受限环境

    • 首选: LMDeployTensorRT-LLM量化版
    • 理由: 高质量的低精度推理实现

实践案例:DeepSeek模型的高性能部署

下面我们以DeepSeek模型为例,展示如何选择和使用高性能推理框架。

场景分析

假设我们需要部署一个DeepSeek-7B模型用于企业内部的智能客服系统:

  • 需要处理约50个并发用户
  • 要求响应速度快(首token<500ms)
  • 硬件资源为2张A100-80GB GPU
  • 需要支持长文本上下文

推理框架选择

基于上述需求,vLLM是较为合适的选择,原因如下:

  • 良好的DeepSeek模型支持
  • PagedAttention技术支持长上下文
  • 优秀的并发处理能力
  • 相对较低的部署复杂度

部署步骤概述

  1. 环境准备

    • CUDA和PyTorch安装
    • vLLM安装
  2. 模型准备

    • 从HuggingFace下载DeepSeek模型
    • 配置模型参数
  3. 服务部署

    • 启动vLLM服务
    • 配置API网关
  4. 性能测试与调优

    • 负载测试
    • 参数优化

推理优化的关键技术

无论选择哪种推理框架,以下关键技术都可以帮助优化LLM推理性能:

1. 模型量化

将模型参数从FP32/FP16降低到INT8/INT4等低精度格式:

  • AWQ: 激活感知权重量化,保持高精度
  • GPTQ: 基于量化感知训练的后训练量化
  • SmoothQuant: 平滑量化,减少异常值影响

2. KV缓存优化

在自回归生成过程中优化注意力计算:

  • PagedAttention/Blocked KV Cache: 分页管理KV缓存
  • 注意力稀疏化: 减少不必要的注意力计算
  • 上下文压缩: 长文档内容的智能压缩

3. 批处理策略

优化多请求处理:

  • 连续批处理(Continuous Batching): 动态添加新请求
  • 请求调度优化: 基于优先级和资源的请求排队
  • 动态批大小: 根据负载自动调整批大小

4. 专用硬件加速

利用硬件特性:

  • Tensor Core: NVIDIA GPU的专用矩阵计算单元
  • 计算与访存重叠: 掩盖内存访问延迟
  • 多级缓存优化: 提高数据局部性

5. 分布式推理

跨设备协同计算:

  • 张量并行(Tensor Parallelism): 将单个计算分散到多GPU
  • 流水线并行(Pipeline Parallelism): 模型层次的并行计算
  • 专家并行(Expert Parallelism): MoE模型的专家分布

小结

高性能推理框架是将大语言模型部署到生产环境的关键工具。vLLM以其PagedAttention技术和易用性在通用场景中表现出色;LMDeploy在亚洲语言模型和量化方面具有优势;TensorRT-LLM则在NVIDIA硬件上提供极致性能和企业级功能。

在部署DeepSeek等大语言模型时,应根据具体应用场景、技术能力和资源条件选择合适的推理框架。同时,了解并应用关键的推理优化技术,如模型量化、KV缓存优化和批处理策略等,可以进一步提升推理性能和资源利用效率。

在下一节中,我们将深入探讨分布式与量化技术,这两项技术是实现大模型高效推理的关键所在。